package com.juc.semaphore.semaphore16;

import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;

public class Service {

	private Semaphore semaphore = new Semaphore(3);
	/**
     * tryAcquire(3, 3, TimeUnit.SECONDS)
     * 在指定时间内尝试的获得X个许可 如果获取不到就返回false
     */

	public void testMethod(){
	      try {
			if(semaphore.tryAcquire(3, 3, TimeUnit.SECONDS)){
				System.out.println("threadName = " + Thread.currentThread().getName() + " 首选进入 ");
			    for (int i = 0; i <Integer.MAX_VALUE; i++) {
					/*String newString = new String();
					Math.random();*/
				}
			    semaphore.release(3);
			}else {
				System.out.println("threadName = " + Thread.currentThread().getName() + " 未成功进入 ");
			}
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
